/*******************************************************************************
* Copyright (c) 2006, 2011 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*     IBM Corporation - initial API and implementation
*********************************************************************************/

// This file was generated by LPG

package org.eclipse.cdt.internal.core.dom.parser.upc;

public class UPCParserprs implements lpg.lpgjavaruntime.ParseTable, UPCParsersym {

    public interface IsKeyword {
        public final static byte isKeyword[] = {0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0
        };
    };
    public final static byte isKeyword[] = IsKeyword.isKeyword;
    public final boolean isKeyword(int index) { return isKeyword[index] != 0; }

    public interface BaseCheck {
        public final static short baseCheck[] = {0,
            0,0,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,3,1,
            1,4,4,3,3,2,2,4,1,0,
            1,1,2,2,2,2,2,2,2,2,
            2,4,1,4,1,3,3,3,1,3,
            3,1,3,3,1,3,3,3,3,1,
            3,3,1,3,1,3,1,3,1,3,
            1,3,1,5,1,3,3,3,3,3,
            3,3,3,3,3,3,1,1,2,1,
            0,1,3,1,1,1,1,1,1,1,
            1,3,4,3,2,4,1,2,1,1,
            1,2,5,7,5,1,0,7,2,5,
            9,8,3,2,2,2,3,2,4,2,
            2,2,2,2,1,1,1,1,2,1,
            2,2,2,1,2,2,1,2,2,1,
            2,2,1,2,2,1,3,1,3,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            6,8,0,0,1,1,3,3,3,0,
            1,0,1,2,4,2,1,1,1,3,
            1,1,2,3,7,8,0,1,0,1,
            3,1,3,1,1,1,1,1,1,3,
            1,1,1,1,1,3,1,2,2,1,
            5,3,1,3,5,1,3,1,3,2,
            4,3,5,4,6,6,3,5,1,3,
            4,5,6,0,1,2,1,3,1,1,
            3,2,1,1,1,1,2,1,2,3,
            1,1,1,3,1,2,2,2,3,4,
            5,1,1,7,3,0,0,1,1,3,
            3,4,1,1,2,3,2,3,2,1,
            0,1,2,1,1,1,1,1,2,1,
            3,6,4,2,4,1,1,1,2,4,
            2,4,2,4,1,1,2,1,1,1,
            3,3,2,1,3,2,3,2,3,2,
            2,11,10,10,9,10,9,9,8,10,
            9,9,8,9,8,8,7,10,9,9,
            8,9,8,8,7,1,1,-118,-275,0,
            -16,-304,0,0,0,0,0,0,-19,0,
            0,-57,0,0,0,-2,0,0,0,0,
            0,0,-21,0,0,0,0,0,0,0,
            -7,0,0,0,0,0,-43,0,0,0,
            0,0,-23,0,0,0,0,0,0,-22,
            0,0,0,0,0,-11,-13,-81,-4,0,
            0,-279,0,0,0,0,0,0,-34,0,
            0,0,0,0,0,-28,0,-45,0,-9,
            0,0,0,0,0,0,-110,0,0,0,
            0,0,0,0,0,0,0,0,-30,0,
            0,0,0,-29,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-31,0,0,
            0,-26,0,0,0,0,0,0,0,-39,
            -24,0,0,0,0,0,0,0,0,-40,
            0,0,0,0,0,0,0,0,-243,0,
            0,-65,0,0,0,0,0,0,0,0,
            0,0,0,0,-66,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-27,0,0,0,0,-51,-300,0,0,
            -32,0,0,0,0,0,0,0,0,0,
            0,0,0,-53,0,0,-67,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -25,0,-134,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-147,0,0,0,
            0,0,0,0,0,0,0,-68,0,0,
            -61,0,0,0,0,0,0,0,0,0,
            0,-69,0,0,0,0,-129,0,0,-48,
            0,0,-47,0,0,0,0,0,0,0,
            -70,0,0,0,0,-35,0,0,-85,0,
            0,-3,0,0,0,0,0,0,0,0,
            0,0,-36,0,0,-259,0,-20,0,-71,
            -14,-192,0,0,0,0,0,-86,0,0,
            0,-320,0,0,0,0,0,0,-41,0,
            0,0,0,0,0,0,0,-185,0,0,
            0,0,0,0,0,0,-72,0,0,0,
            0,0,0,0,0,0,-99,0,0,0,
            -237,0,0,0,0,0,0,0,-77,0,
            0,0,0,0,0,0,0,-321,0,0,
            -79,0,0,0,0,0,0,0,0,0,
            0,-119,0,0,0,-42,-98,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -88,0,0,-161,0,0,0,0,0,0,
            0,0,-37,0,0,-227,0,0,0,0,
            0,-46,0,0,-73,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -100,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-33,-74,0,0,
            0,0,0,0,0,0,0,-75,0,0,
            -91,0,0,0,-78,0,0,0,0,0,
            0,-76,0,0,0,0,0,0,0,-114,
            0,-87,0,0,-80,0,0,0,0,0,
            0,0,-90,0,0,-241,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-162,0,0,-93,0,0,
            0,0,0,0,0,-198,0,0,0,0,
            -54,0,0,-154,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-94,0,-180,
            -271,0,0,0,0,0,0,0,0,0,
            -104,0,0,0,0,0,0,-5,0,-127,
            0,0,-128,0,0,0,0,0,0,0,
            0,0,-116,0,0,0,0,0,0,0,
            0,0,0,-96,0,0,-58,0,0,0,
            0,0,0,0,0,0,0,-176,0,0,
            0,0,0,0,0,-97,-130,0,0,-164,
            0,0,-84,0,0,0,0,0,0,0,
            0,0,0,-38,0,0,0,-105,0,-106,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-165,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-113,0,
            -302,0,0,0,0,0,0,-120,0,0,
            0,0,0,0,0,-166,0,0,0,-107,
            0,0,0,0,0,0,-108,0,0,-59,
            0,0,0,-109,0,0,0,0,0,0,
            -200,0,0,0,0,0,0,0,-167,0,
            0,-152,0,0,0,0,0,0,0,-111,
            0,0,-60,0,0,0,-201,0,0,0,
            0,0,0,-112,0,0,0,0,0,0,
            0,-168,0,0,-155,0,0,0,0,0,
            0,0,0,0,0,-62,0,0,0,-115,
            0,0,0,0,0,0,-156,0,0,0,
            0,0,0,0,-169,0,0,0,0,0,
            0,0,0,0,0,-117,0,0,-95,0,
            0,0,-150,0,0,0,0,0,0,-175,
            0,0,0,0,0,0,0,-170,0,0,
            0,-158,0,0,0,0,0,0,-178,0,
            0,-131,0,0,0,-188,0,0,0,0,
            0,0,-193,0,0,0,0,0,0,0,
            -171,0,0,-177,0,0,0,0,0,0,
            0,-195,0,0,-132,0,0,0,-196,0,
            0,0,0,0,0,-202,0,0,0,0,
            0,0,0,-172,0,0,0,-209,0,0,
            0,0,0,0,-210,0,0,-133,0,0,
            0,-208,0,0,0,0,0,0,-203,0,
            0,0,0,0,0,0,-173,0,0,0,
            -211,0,0,0,0,0,0,-212,0,0,
            -55,0,0,0,-240,0,0,0,0,0,
            0,-204,0,0,0,0,0,0,0,-174,
            0,0,0,-213,0,0,0,0,0,0,
            -214,0,0,-56,0,0,0,-276,0,0,
            0,0,0,0,-205,0,0,0,0,0,
            0,0,-238,0,0,0,-215,0,0,0,
            0,0,0,-216,0,0,-63,0,0,0,
            -277,0,0,0,0,0,0,-206,0,0,
            0,0,0,0,0,-239,0,0,0,-217,
            0,0,0,0,0,0,-218,0,0,-64,
            0,0,0,-163,0,0,0,0,0,0,
            -207,0,0,0,0,0,0,0,-255,0,
            0,0,-219,0,0,0,0,0,0,-179,
            0,0,0,0,-220,0,-230,-89,0,0,
            0,0,-225,0,0,0,0,0,0,0,
            0,-265,0,0,-221,-226,0,0,0,0,
            0,0,-181,0,0,0,0,-323,0,0,
            -260,-273,0,0,0,0,-222,0,0,0,
            0,0,0,0,-270,0,0,-261,-262,0,
            0,0,0,0,0,-182,0,0,0,0,
            -322,0,-1,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-295,
            0,0,-263,0,0,0,0,0,0,0,
            -183,0,0,0,0,0,0,0,0,0,
            0,0,0,-268,0,0,0,0,0,0,
            0,0,-184,0,-303,0,0,-233,0,0,
            0,0,0,0,0,-246,0,0,0,0,
            -223,0,0,-101,0,0,0,0,-224,0,
            0,0,0,0,0,0,0,0,-153,-319,
            0,0,-231,-232,0,0,0,0,0,0,
            -248,0,0,0,0,-278,0,-121,0,0,
            0,0,-249,0,0,0,0,0,0,0,
            0,0,-242,0,-324,0,0,-251,0,0,
            0,0,0,0,0,-250,0,0,0,0,
            -269,0,-50,0,0,0,0,-296,-301,0,
            0,0,0,0,0,0,0,-316,0,0,
            0,0,0,0,0,0,0,0,-10,0,
            0,0,0,0,0,0,-191,0,0,0,
            0,0,-281,-283,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-293,0,0,0,0,-44,0,0,
            -253,0,0,0,0,0,0,0,-229,-18,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-49,
            0,0,-252,0,-194,0,0,0,0,0,
            0,0,-236,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -157,0,0,0,0,0,0,-149,0,0,
            -342,0,0,0,0,0,0,0,-234,0,
            0,0,0,0,0,-148,0,-235,0,0,
            0,0,-264,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -258,0,0,0,0,0,0,-102,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-257,0,
            -160,0,0,0,-291,0,0,-6,0,0,
            0,0,0,0,0,0,-297,-146,0,0,
            0,-298,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -315,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -285,-299,-144,0,0,0,0,0,0,0,
            0,0,0,-294,0,0,0,0,0,0,
            0,-103,0,-306,0,0,0,-309,0,0,
            0,-312,0,0,0,0,0,0,-254,0,
            0,0,0,-314,0,0,0,0,0,-329,
            0,0,0,-317,0,0,0,0,0,0,
            0,0,0,0,0,0,-287,0,0,0,
            0,-334,-326,-272,0,0,-289,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-290,0,0,0,0,0,0,0,
            0,0,-325,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-330,0,
            0,0,0,-336,-331,0,0,0,-341,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-343,0,0,0,0,-340,
            -338,0,0,0,-344,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -346,0,0,0,0,-359,-345,0,0,0,
            -349,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-350,0,0,0,
            0,0,-347,0,0,0,-352,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-355,0,0,0,0,0,-351,0,
            0,0,-360,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-362,0,
            0,0,0,0,-353,0,0,0,-363,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-364,0,0,0,0,0,
            -356,0,0,0,-366,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -367,0,0,0,0,0,-361,0,0,0,
            -368,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-370,0,0,0,
            0,0,-365,0,0,0,-371,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-373,0,0,0,0,0,-369,0,
            0,0,-376,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-377,0,
            0,0,0,0,-372,0,0,0,-378,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-379,0,0,0,0,0,
            -374,0,0,0,-380,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -381,0,0,0,0,0,-382,0,0,0,
            -383,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-145,0,0,-159,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-267,0,0,0,-138,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -247,0,-318,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-8,0,0,-139,
            -12,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-140,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-141,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-142,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-143,0,0,
            0,-15,0,0,0,0,0,0,-17,0,
            0,-135,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-197,-82,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -199,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-136,0,0,
            -274,0,0,0,0,0,0,0,-137,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-92,
            0,-52,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-122,0,0,0,
            0,-123,0,-124,0,0,0,0,-151,0,
            0,0,0,0,0,0,0,0,0,-125,
            0,0,0,0,-126,0,0,-256,0,0,
            0,-266,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-83,0,-292,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-186,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-305,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-308,0,-228,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-327,0,0,0,0,0,0,0,-328,
            0,0,0,0,0,0,0,-332,0,0,
            0,0,0,0,0,0,-333,0,0,0,
            0,0,-335,0,0,0,0,0,-348,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-354,0,0,0,0,0,
            0,0,0,-357,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-358,
            0,0,0,0,0,-375,0,0,0,0,
            0,-244,0,0,0,0,0,0,0,0,
            -245,0,0,0,0,0,0,0,-280,0,
            0,0,0,0,0,0,-282,0,0,0,
            0,0,0,0,-284,0,0,0,0,0,
            0,-286,0,-307,0,0,0,0,0,-310,
            0,0,0,0,0,0,0,0,-311,0,
            0,0,0,0,-313,0,-337,0,0,0,
            0,0,0,-339,0,-187,0,0,0,0,
            0,-189,0,0,0,0,0,0,0,0,
            -190,0,-288,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0
        };
    };
    public final static short baseCheck[] = BaseCheck.baseCheck;
    @Override
	public final int baseCheck(int index) { return baseCheck[index]; }
    public final static short rhs[] = baseCheck;
    @Override
	public final int rhs(int index) { return rhs[index]; };

    public interface BaseAction {
        public final static char baseAction[] = {
            111,1,130,39,39,11,11,49,49,3,
            3,2,2,5,5,5,5,6,6,6,
            7,8,8,8,8,8,8,8,8,82,
            82,94,9,9,9,9,9,9,9,9,
            9,9,9,10,10,12,12,12,12,13,
            13,13,15,15,15,17,17,17,17,17,
            26,26,26,27,27,28,28,29,29,30,
            30,31,31,32,32,34,34,34,34,34,
            34,34,34,34,34,34,34,18,14,4,
            112,112,95,95,60,19,19,19,19,19,
            19,19,20,20,20,16,16,96,96,73,
            73,21,21,22,22,22,68,68,23,23,
            23,23,23,24,24,24,24,24,51,51,
            33,33,33,33,33,54,54,54,88,88,
            83,83,83,83,84,84,84,85,85,85,
            86,86,86,87,87,87,97,97,89,89,
            90,55,57,57,57,57,57,69,70,70,
            70,70,70,70,70,70,70,70,70,70,
            77,74,74,113,114,79,79,75,75,75,
            91,98,98,99,99,92,92,92,58,115,
            115,100,101,101,101,76,76,116,102,102,
            103,103,93,93,35,36,36,36,56,59,
            59,45,45,45,45,41,41,42,46,46,
            47,43,43,104,104,48,118,118,117,117,
            52,52,52,52,52,52,52,52,52,105,
            61,61,61,61,40,80,80,71,71,71,
            72,72,63,63,119,119,62,62,81,81,
            81,64,64,64,65,66,66,66,67,67,
            67,67,78,78,50,50,53,121,120,120,
            120,120,106,122,123,123,124,124,125,125,
            111,111,126,126,107,107,107,107,127,127,
            108,108,108,109,110,110,5,5,5,9,
            9,9,9,9,9,35,35,37,37,38,
            38,128,128,128,19,25,25,25,25,25,
            25,25,23,23,23,23,23,23,23,23,
            23,23,23,23,23,23,23,23,23,23,
            23,23,23,23,23,23,44,44,362,2858,
            1259,2059,2895,17,21,18,522,883,45,72,
            535,618,2751,577,20,651,2078,17,21,18,
            522,43,40,2045,632,717,680,838,805,848,
            75,1922,92,136,214,325,326,2558,2916,875,
            552,225,230,1922,220,492,222,224,232,510,
            2077,275,138,135,137,161,56,2043,72,2213,
            379,180,2883,270,1127,1101,273,140,167,1901,
            500,862,144,147,150,153,2137,426,401,766,
            2151,2627,1689,2631,2742,2749,1740,433,940,1186,
            111,87,1024,1252,136,214,325,326,1145,72,
            420,225,233,96,1910,1059,1226,95,97,98,
            99,100,334,138,135,137,161,793,2055,552,
            225,230,2509,219,492,222,224,295,140,167,
            1912,129,1728,144,147,150,153,160,426,510,
            2181,311,2627,1689,2631,2742,2749,1740,656,2601,
            432,20,2832,313,17,21,18,522,883,45,
            1760,535,618,401,577,2108,651,157,446,439,
            875,420,225,234,229,632,717,680,838,805,
            848,75,2150,282,1669,372,294,2317,2412,432,
            20,2318,1663,17,21,18,522,883,45,283,
            535,618,938,577,2651,651,20,1903,327,17,
            21,18,522,323,632,717,680,838,805,848,
            75,2861,282,2751,129,20,331,288,17,21,
            18,522,43,45,228,535,1278,2751,283,20,
            314,938,17,21,18,522,43,45,2466,535,
            618,2503,577,20,651,289,17,21,18,522,
            43,36,2135,632,717,1497,290,2850,940,1626,
            2528,90,20,2558,2850,17,21,18,522,883,
            45,2048,535,618,232,577,2217,651,188,2284,
            332,180,2839,1898,291,128,632,717,680,838,
            805,848,75,2217,282,187,2558,2918,401,766,
            2268,2049,476,940,1186,111,87,279,2839,2560,
            283,128,202,938,136,214,325,326,96,2320,
            1059,104,95,97,98,99,100,334,2839,368,
            226,3101,88,138,135,137,161,2210,159,552,
            225,230,1586,219,492,222,224,2917,140,167,
            341,2918,659,144,147,150,153,699,426,129,
            2879,688,2627,1689,2631,2742,2749,1740,2626,1431,
            20,129,1609,17,21,18,522,883,45,3092,
            535,618,2320,577,1811,651,72,1,368,1186,
            111,87,673,2766,632,717,680,838,805,848,
            75,2317,282,96,2317,1059,109,95,97,98,
            99,100,334,1905,261,855,2839,2575,283,196,
            688,938,2290,1458,20,275,510,17,21,18,
            522,883,45,284,535,618,315,577,110,651,
            242,2839,940,244,340,88,292,2767,632,717,
            680,838,805,848,75,1450,781,2478,2117,20,
            108,240,17,21,18,522,43,45,2296,535,
            618,2503,577,20,651,2562,17,21,18,522,
            43,36,145,632,717,680,838,805,848,94,
            2318,1697,2801,1891,20,2221,333,17,21,18,
            522,883,45,2041,535,618,2503,577,20,651,
            247,17,21,18,522,43,36,557,632,717,
            680,838,805,848,75,2362,784,20,129,998,
            17,21,18,522,883,45,72,535,618,105,
            577,2676,651,20,72,248,17,21,18,522,
            321,632,717,680,838,805,848,75,2569,1325,
            2751,2217,20,1613,241,17,21,18,522,883,
            45,2917,535,618,125,577,510,651,1966,429,
            2217,306,31,2217,1578,31,632,717,680,838,
            805,848,75,2751,92,20,1193,2898,17,21,
            18,522,43,45,1983,535,618,2751,577,20,
            651,662,17,21,18,522,43,39,2924,632,
            717,680,838,805,848,94,2829,129,940,305,
            2751,88,20,2567,659,17,21,18,522,883,
            45,1292,535,618,2217,577,189,651,2917,312,
            2217,124,1573,1233,211,1252,632,717,680,838,
            805,848,75,2751,86,20,688,285,17,21,
            18,522,883,45,25,535,618,24,577,2917,
            651,2217,112,297,309,303,304,310,2320,632,
            717,680,838,805,848,75,2751,85,20,19,
            2324,17,21,18,522,883,45,2407,535,618,
            2751,577,20,651,2570,17,21,18,522,43,
            38,2897,632,717,680,838,805,848,75,2751,
            84,20,129,1739,17,21,18,522,883,45,
            2836,535,618,2751,577,20,651,2882,17,21,
            18,522,43,37,2847,632,717,680,838,805,
            848,75,2751,83,20,2148,1829,17,21,18,
            522,883,45,276,535,618,2751,577,20,651,
            2657,17,21,18,522,43,35,2320,632,717,
            680,838,805,848,75,2751,82,20,231,277,
            17,21,18,522,883,45,2682,535,618,2751,
            577,20,651,2840,17,21,18,522,43,36,
            2316,632,717,680,838,805,848,75,2751,81,
            20,235,2782,17,21,18,522,883,45,74,
            535,618,2751,577,20,651,2837,17,21,18,
            522,43,48,2707,632,717,680,838,805,848,
            75,2751,80,20,129,519,17,21,18,522,
            883,45,2885,535,618,2751,577,20,651,2826,
            17,21,18,522,43,47,2320,632,717,680,
            838,805,848,75,2751,79,20,1491,2468,17,
            21,18,522,883,45,2553,535,618,2751,577,
            20,651,2317,17,21,18,522,43,46,2320,
            632,717,680,838,805,848,75,2751,78,20,
            1508,2207,17,21,18,522,883,45,2315,535,
            618,2701,577,20,651,2317,17,21,18,522,
            319,22,2320,632,717,680,838,805,848,75,
            2751,77,20,1509,2114,17,21,18,522,883,
            45,2118,535,618,2726,577,20,651,2317,17,
            21,18,522,41,243,2320,632,717,680,838,
            805,848,75,2751,76,20,1543,1930,17,21,
            18,522,883,45,2394,535,618,2776,577,20,
            651,2317,17,21,18,522,34,245,2320,632,
            717,680,838,805,848,75,2751,1358,20,1843,
            2854,17,21,18,522,883,45,2868,535,618,
            2776,577,20,651,2356,17,21,18,522,33,
            246,2320,632,717,680,838,805,848,75,2751,
            1391,20,23,2925,17,21,18,522,883,45,
            2917,535,618,339,577,2477,651,2935,1929,256,
            214,325,326,129,2902,632,717,680,838,805,
            848,75,2751,93,20,2856,2924,17,21,18,
            522,883,45,2917,535,618,337,577,2217,651,
            299,2951,2857,255,214,325,326,2469,632,717,
            680,838,805,848,75,2751,74,20,2954,2955,
            17,21,18,522,43,45,2917,535,618,335,
            577,2317,651,1895,429,181,306,256,214,325,
            326,632,717,680,838,805,848,94,1424,1661,
            2751,28,20,2958,938,17,21,18,522,43,
            45,2917,535,618,127,577,662,651,28,28,
            296,938,938,905,2935,213,632,717,680,838,
            805,848,94,2917,305,2751,123,20,2845,2024,
            17,21,18,522,43,45,2917,535,618,3125,
            577,2732,651,28,2839,940,938,338,88,2867,
            203,632,717,680,838,805,848,94,1483,2405,
            2751,1613,20,2606,2936,17,21,18,522,43,
            45,2917,535,618,3132,577,2941,651,2355,916,
            302,304,310,2320,386,1521,632,717,680,838,
            805,848,94,387,2017,2751,1907,20,2320,958,
            17,21,18,522,43,45,2946,535,618,2027,
            577,2924,651,220,368,1186,111,87,2953,2965,
            204,632,717,680,838,805,848,94,2056,96,
            275,1059,109,95,97,98,99,100,334,346,
            3262,3262,268,1127,1101,273,688,291,368,1186,
            111,87,210,2917,2917,1821,3134,3140,1952,267,
            205,1457,1614,96,110,1059,109,95,97,98,
            99,100,334,2924,136,214,325,326,129,659,
            688,147,368,1186,111,87,107,3262,3262,2405,
            2284,1613,180,146,135,137,161,96,110,1059,
            109,95,97,98,99,100,334,3262,3262,767,
            1912,688,3262,2320,688,519,940,1186,111,87,
            107,3262,182,72,2053,136,214,325,326,308,
            106,96,110,1059,102,95,97,98,99,100,
            334,3262,3262,1731,139,135,137,161,3262,3262,
            875,552,225,1006,108,220,492,222,984,141,
            167,1923,1773,510,145,148,151,154,2751,426,
            20,2317,3262,17,21,18,522,43,45,1929,
            535,618,210,577,369,651,129,940,1932,2821,
            88,1564,1614,2962,632,717,680,838,1599,278,
            1591,3262,552,225,230,1013,219,492,222,224,
            298,2848,659,275,255,214,325,326,2839,940,
            264,336,88,3262,3262,268,1127,1101,273,552,
            225,230,1516,219,492,222,224,3262,3262,2320,
            275,1929,265,28,1811,2320,938,699,401,469,
            274,510,268,1127,1101,273,280,2924,2751,1492,
            20,3262,2863,17,21,18,522,43,45,1889,
            535,618,2898,577,260,651,255,214,325,326,
            262,2320,1895,1212,632,717,680,1475,3262,552,
            225,488,2130,219,492,222,474,256,214,325,
            326,2917,2924,2751,3155,20,206,160,17,21,
            18,522,43,45,2915,535,618,195,577,3262,
            651,1424,2839,940,2917,126,88,3002,2917,632,
            1443,3018,2917,3262,3262,3157,1551,156,446,562,
            940,1186,111,87,2917,591,1373,3164,3262,3262,
            2917,692,413,3039,2320,96,3262,1059,103,95,
            97,98,99,100,334,281,501,605,940,1186,
            111,87,2917,2320,1929,3055,3262,648,940,1186,
            111,87,3262,96,2125,1059,120,95,97,98,
            99,100,334,96,3262,1059,115,95,97,98,
            99,100,334,691,940,1186,111,87,3262,255,
            214,325,326,734,940,1186,111,87,3262,96,
            3262,1059,1678,95,97,98,99,100,334,96,
            3262,1059,365,95,97,98,99,100,334,777,
            940,1186,111,87,2917,2320,3262,3064,3262,820,
            940,1186,111,87,1912,96,2171,1059,357,95,
            97,98,99,100,334,96,3262,1059,114,95,
            97,98,99,100,334,863,940,1186,111,87,
            2917,2320,3262,118,3262,906,940,1186,111,87,
            3262,96,2243,1059,364,95,97,98,99,100,
            334,96,3262,1059,363,95,97,98,99,100,
            334,949,940,1186,111,87,2917,2320,3262,3086,
            3262,992,940,1186,111,87,3262,96,2269,1059,
            361,95,97,98,99,100,334,96,3262,1059,
            356,95,97,98,99,100,334,1035,940,1186,
            111,87,3262,2320,3262,3262,3262,1078,940,1186,
            111,87,3262,96,2279,1059,355,95,97,98,
            99,100,334,96,3262,1059,353,95,97,98,
            99,100,334,1121,940,1186,111,87,3262,2320,
            3262,3262,3262,1164,940,1186,111,87,3262,96,
            2315,1059,349,95,97,98,99,100,334,96,
            3262,1059,122,95,97,98,99,100,334,1207,
            940,1186,111,87,3262,2320,3262,3262,3262,1250,
            940,1186,111,87,3262,96,2341,1059,362,95,
            97,98,99,100,334,96,3262,1059,360,95,
            97,98,99,100,334,1293,940,1186,111,87,
            3262,2320,3262,3262,3262,1336,940,1186,111,87,
            3262,96,2377,1059,359,95,97,98,99,100,
            334,96,3262,1059,354,95,97,98,99,100,
            334,1379,940,1186,111,87,3262,2320,3262,3262,
            3262,1422,940,1186,111,87,3262,96,2423,1059,
            352,95,97,98,99,100,334,96,3262,1059,
            351,95,97,98,99,100,334,1465,940,1186,
            111,87,3262,2320,3262,3262,3262,1508,940,1186,
            111,87,3262,96,2449,1059,348,95,97,98,
            99,100,334,96,3262,1059,347,95,97,98,
            99,100,334,1551,940,1186,111,87,3262,2320,
            3262,3262,3262,1594,940,1186,111,87,3262,96,
            2459,1059,345,95,97,98,99,100,334,96,
            3262,1059,121,95,97,98,99,100,334,1637,
            940,1186,111,87,3262,2320,3262,3262,3262,1680,
            940,1186,111,87,3262,96,2485,1059,358,95,
            97,98,99,100,334,96,3262,1059,350,95,
            97,98,99,100,334,1723,940,1186,111,87,
            3262,2320,3262,3262,3262,1766,940,1186,111,87,
            3262,96,2495,1059,346,95,97,98,99,100,
            334,96,3262,1059,344,95,97,98,99,100,
            334,1809,940,1186,111,87,3262,2320,3262,3262,
            3262,1852,940,1186,111,87,3262,96,2531,1059,
            343,95,97,98,99,100,334,96,3262,1059,
            342,95,97,98,99,100,334,2751,3262,20,
            401,766,17,21,18,522,43,45,3262,535,
            618,3262,577,3262,651,1916,766,3262,3262,2751,
            3262,20,3262,1455,17,21,18,522,43,45,
            3262,535,618,3262,577,3262,1344,3262,3262,3262,
            3262,552,225,230,3262,219,492,222,224,3262,
            3262,2914,940,1916,766,88,552,225,230,160,
            219,492,222,224,3262,116,3262,2398,3262,3262,
            2751,1950,20,3262,1668,17,21,18,522,43,
            45,3262,535,618,3262,577,3262,1351,3262,156,
            446,3262,3262,3262,552,225,230,591,219,492,
            222,224,136,214,325,326,136,214,325,326,
            3262,3262,1668,3262,3262,199,201,3262,3262,1951,
            3262,143,135,137,161,149,135,137,161,3262,
            1964,3262,3262,2751,3262,20,142,167,17,21,
            18,522,43,45,3262,535,618,3262,1377,3262,
            2751,3262,20,200,201,17,21,18,522,43,
            45,3262,535,618,2751,1384,20,3262,3262,17,
            21,18,522,43,45,3262,535,618,2751,1410,
            20,3262,2021,17,21,18,522,43,45,2076,
            535,618,2751,1417,20,3262,3262,17,21,18,
            522,43,45,3262,535,1285,2576,1912,20,3262,
            3262,17,21,18,522,43,44,136,214,325,
            326,1984,1861,3262,136,214,325,326,3262,3262,
            3262,3262,278,3262,3262,3262,152,135,137,161,
            3262,3262,3262,155,135,137,161,875,552,225,
            230,3262,220,492,222,224,28,3262,2751,938,
            20,2848,659,17,21,18,522,43,45,2751,
            1311,20,3262,275,17,21,18,522,43,45,
            3262,1318,3262,3262,3262,268,1127,1101,273,3262,
            2360,659,129,368,1811,3262,88,3262,3262,3262,
            3262,510,1889,3262,3262,3262,1068,129,368,3262,
            3262,88,129,368,129,368,88,3262,88,2037,
            659,1068,369,1811,260,198,1068,3262,1068,3262,
            129,368,1895,1212,88,129,368,3262,2894,88,
            198,3262,2183,659,1068,198,3262,198,3262,1068,
            1628,3262,198,260,762,3262,2388,659,2388,659,
            3262,1167,1212,198,3262,1628,3262,3262,198,1266,
            1628,3262,1628,3262,1299,198,1332,796,875,3262,
            2914,368,3262,3262,88,3262,3262,3262,1628,1811,
            275,1811,1365,1628,116,2916,940,1398,3262,88,
            796,3262,270,1127,1101,273,2063,1200,3262,366,
            3262,193,3262,688,3262,3262,3262,1476,2984,260,
            3262,260,2916,940,2110,659,88,1167,1212,2004,
            1212,2611,3262,2089,193,3262,366,3262,3262,2023,
            1723,2984,2916,940,3262,3262,88,3262,1621,3262,
            2916,940,3262,2135,88,3262,366,198,2916,940,
            3262,2161,88,3262,366,3262,2095,2916,940,2197,
            3262,88,366,2916,940,3262,3262,88,2207,2916,
            940,366,796,88,2233,3262,2167,366,3262,3262,
            2305,3262,3262,366,2203,2916,940,3262,3262,88,
            3262,3262,2239,3262,2916,940,2351,3262,88,366,
            3262,2275,3262,3262,3262,2387,194,2311,366,3262,
            2916,940,3262,2383,88,3262,2916,940,3262,3262,
            88,2413,2839,940,366,3109,88,2521,3262,2419,
            366,2839,940,3262,3117,88,1703,3262,2455,2839,
            940,3262,2955,88,3262,1704,3262,2839,940,3262,
            2982,88,3262,1974,2491,2839,940,3262,3149,88,
            2527,1978,2914,940,2839,940,88,3010,88,1982,
            2839,940,3262,3027,88,3262,116,3262,2000,2839,
            940,3262,3033,88,2022,2914,940,2839,940,88,
            3080,88,3262,2094,2914,940,129,940,88,116,
            88,2166,129,940,3262,3262,88,3262,116,3262,
            1633,129,940,129,940,88,1648,88,3262,3262,
            3262,3262,3262,3262,3262,1763,3262,1931,3262,3262,
            1994,3262,3262,3262,3262,3262,3262,3262,3262,3262,
            3262,3262,3262,3262,3262,3262,3262,3262,3262,3262,
            3262,3262,3262,2131,3262,3262,3262,3262,3262,3262,
            3262,3262,2347,3262,0,328,837,0,11,227,
            0,3270,1,0,1,3500,0,8,10,0,
            1656,119,0,180,20,0,1,3489,0,113,
            2099,0
        };
    };
    public final static char baseAction[] = BaseAction.baseAction;
    @Override
	public final int baseAction(int index) { return baseAction[index]; }
    public final static char lhs[] = baseAction;
    @Override
	public final int lhs(int index) { return lhs[index]; };

    public interface TermCheck {
        public final static byte termCheck[] = {0,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,54,0,56,57,58,59,
            60,61,62,63,64,65,66,67,68,69,
            70,0,72,0,1,2,3,4,5,6,
            7,8,9,10,11,12,13,14,15,16,
            17,18,19,20,21,22,23,24,25,26,
            27,28,29,30,31,32,33,34,35,36,
            37,38,39,40,41,42,43,44,45,46,
            47,48,49,50,51,52,53,54,0,56,
            57,58,59,60,61,62,63,64,65,66,
            67,68,69,70,0,72,0,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            34,35,36,37,38,39,40,41,42,43,
            44,45,46,47,48,49,50,51,52,53,
            54,0,56,57,58,59,60,61,62,63,
            64,65,66,67,68,69,70,0,72,0,
            1,2,3,4,5,6,7,8,9,10,
            11,12,13,14,15,16,17,18,19,20,
            21,22,23,24,25,26,27,28,29,30,
            31,32,33,34,35,36,37,38,39,40,
            41,42,43,44,45,46,47,48,49,50,
            51,52,53,54,0,56,57,58,59,60,
            61,62,63,64,65,66,67,68,69,70,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,54,0,56,57,58,59,
            60,61,62,63,64,65,66,67,68,69,
            70,0,1,2,3,4,92,0,7,8,
            9,10,11,12,13,14,15,16,17,18,
            19,20,21,22,23,24,0,1,43,44,
            45,46,47,48,49,50,51,52,53,54,
            0,1,2,0,43,44,45,46,47,48,
            49,50,51,52,53,54,0,56,57,58,
            59,60,61,62,63,64,65,66,67,68,
            69,70,0,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,32,33,34,35,36,37,
            38,39,40,41,42,0,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,34,
            35,36,37,38,39,40,41,42,0,1,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,34,35,36,37,38,39,40,41,
            42,0,1,2,3,4,5,6,7,8,
            9,10,11,12,13,14,15,16,17,18,
            19,20,21,22,23,24,25,26,27,28,
            29,30,31,32,33,34,35,36,37,38,
            39,40,41,42,0,1,2,3,4,5,
            6,7,8,9,10,11,12,13,14,15,
            16,17,18,19,20,21,22,23,24,25,
            26,27,28,29,30,31,32,33,34,35,
            36,37,38,39,40,41,42,0,1,2,
            3,4,5,6,7,8,9,10,11,12,
            13,14,15,16,17,18,19,20,21,22,
            23,24,25,26,27,28,29,30,31,32,
            33,34,35,36,37,38,39,40,41,42,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,0,1,2,3,4,5,6,
            7,8,9,10,11,12,13,14,15,16,
            17,18,19,20,21,22,23,24,25,26,
            27,28,29,30,31,32,33,34,35,36,
            37,38,39,40,41,42,0,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            34,35,36,37,38,39,40,41,42,0,
            1,2,3,4,5,6,7,8,9,10,
            11,12,13,14,15,16,17,18,19,20,
            21,22,23,24,25,26,27,28,29,30,
            31,32,33,34,35,36,37,38,39,40,
            41,42,0,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,32,33,34,35,36,37,
            38,39,40,41,42,0,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,34,
            35,36,37,38,39,40,41,42,0,1,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,34,35,36,37,38,39,40,41,
            42,0,1,2,3,4,5,6,7,8,
            9,10,11,12,13,14,15,16,17,18,
            19,20,21,22,23,24,25,26,27,28,
            29,30,31,32,33,34,35,36,37,38,
            39,40,41,42,0,1,2,3,4,5,
            6,7,8,9,10,11,12,13,14,15,
            16,17,18,19,20,21,22,23,24,25,
            26,27,28,29,30,31,32,33,34,35,
            36,37,38,39,40,41,42,0,1,2,
            3,4,5,6,7,8,9,10,11,12,
            13,14,15,16,17,18,19,20,21,22,
            23,24,25,26,27,28,29,30,31,32,
            33,34,35,36,37,38,39,40,41,42,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,0,1,2,3,4,5,6,
            7,8,9,10,11,12,13,14,15,16,
            17,18,19,20,21,22,23,24,25,26,
            27,28,29,30,31,32,33,34,35,36,
            37,38,39,40,41,42,0,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            34,35,36,37,38,39,40,41,42,0,
            1,2,3,4,5,6,7,8,9,10,
            11,12,13,14,15,16,17,18,19,20,
            21,22,23,24,25,26,27,28,29,30,
            31,32,33,34,35,36,37,38,39,40,
            41,42,0,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,32,33,34,35,36,37,
            38,39,40,41,42,0,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,34,
            35,36,37,38,39,40,41,42,0,1,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,34,35,36,37,38,39,40,41,
            42,0,1,2,3,4,5,6,7,8,
            9,10,11,12,13,14,15,16,17,18,
            19,20,21,22,23,24,25,26,27,28,
            29,30,31,32,33,34,35,36,37,38,
            39,40,41,42,0,1,2,3,4,5,
            6,7,8,9,10,11,12,13,14,15,
            16,17,18,19,20,21,22,23,24,25,
            26,27,28,29,30,31,32,33,34,35,
            36,37,38,39,40,41,42,0,1,2,
            3,4,5,6,7,8,9,10,11,12,
            13,14,15,16,17,18,19,20,21,22,
            23,24,25,26,27,28,29,30,31,32,
            33,34,35,36,37,38,39,40,41,42,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,0,1,2,3,4,5,6,
            7,8,9,10,11,12,13,14,15,16,
            17,18,19,20,21,22,23,24,25,26,
            27,28,29,30,31,32,33,34,35,36,
            37,38,39,40,41,42,0,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            34,35,36,37,38,39,40,41,42,0,
            1,2,3,4,5,6,7,8,9,10,
            11,12,13,14,15,16,17,18,19,20,
            21,22,23,24,25,26,27,28,29,30,
            31,32,33,34,35,36,37,38,39,40,
            41,42,0,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,32,33,34,35,36,37,
            38,39,40,41,42,0,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,34,
            35,36,37,38,39,40,41,42,0,1,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,34,35,36,37,38,39,40,41,
            42,0,1,2,3,4,5,6,7,8,
            9,10,11,12,13,14,15,16,17,18,
            19,20,21,22,23,24,25,26,27,28,
            29,30,31,32,33,34,35,36,37,38,
            39,40,41,42,0,1,2,3,4,5,
            0,1,0,3,0,1,6,3,0,0,
            6,0,1,2,5,0,1,2,0,25,
            26,0,0,1,2,0,4,6,0,0,
            0,0,1,2,25,0,5,43,44,45,
            46,47,48,49,50,51,52,53,54,0,
            56,57,58,59,60,61,62,63,64,65,
            66,67,68,69,70,0,1,2,3,4,
            5,43,44,45,46,47,48,55,76,77,
            71,87,0,0,75,2,55,5,5,74,
            25,26,43,44,45,46,47,48,49,50,
            51,52,53,54,73,76,77,25,43,44,
            45,46,47,48,49,50,51,52,53,54,
            0,56,57,58,59,60,61,62,63,64,
            65,66,67,68,69,70,0,1,55,3,
            0,5,0,1,0,3,2,0,0,1,
            0,3,87,71,0,0,73,75,0,1,
            6,3,26,43,44,45,46,47,48,49,
            50,51,52,53,54,0,0,0,2,43,
            44,45,46,47,48,49,50,51,52,53,
            54,0,56,57,58,59,60,61,62,63,
            64,65,66,67,68,69,70,0,72,0,
            1,4,3,0,5,75,0,0,43,44,
            45,46,47,48,49,50,51,52,53,54,
            83,84,85,86,0,26,0,97,98,99,
            100,101,102,103,104,105,106,0,93,0,
            0,2,43,44,45,46,47,48,49,50,
            51,52,53,54,87,56,57,58,59,60,
            61,62,63,64,65,66,67,68,69,70,
            0,72,0,1,4,3,0,5,81,82,
            43,44,45,46,47,48,83,84,85,86,
            83,84,85,86,55,55,0,91,26,0,
            4,75,0,1,2,3,0,1,9,3,
            0,0,88,89,4,43,44,45,46,47,
            48,49,50,51,52,53,54,0,56,57,
            58,59,60,61,62,63,64,65,66,67,
            68,69,70,0,72,43,44,45,46,47,
            48,49,50,51,52,53,54,0,56,57,
            58,59,60,61,62,63,64,65,66,67,
            68,69,70,0,1,0,3,81,82,0,
            1,2,3,4,5,0,7,8,9,10,
            11,12,13,14,15,16,17,18,19,20,
            21,22,23,24,0,0,0,0,4,0,
            5,5,5,0,5,2,43,44,45,46,
            47,48,49,50,51,52,53,54,49,56,
            57,58,59,60,61,62,63,64,65,66,
            67,68,69,70,0,0,2,90,4,0,
            1,0,1,2,3,4,5,78,7,8,
            9,10,11,12,13,14,15,16,17,18,
            19,20,21,22,23,24,71,0,73,72,
            95,96,73,0,78,81,82,0,43,44,
            45,46,47,48,0,1,0,3,2,55,
            49,0,1,2,3,4,5,6,7,8,
            9,10,11,12,13,14,15,16,17,18,
            19,20,21,22,23,24,0,0,79,78,
            43,44,45,46,47,48,49,50,51,52,
            53,54,0,56,57,58,59,60,61,62,
            63,64,65,66,67,0,79,0,0,76,
            77,0,7,8,7,8,0,0,1,2,
            3,4,5,72,7,8,9,10,11,12,
            13,14,15,16,17,18,19,20,21,22,
            23,24,0,1,2,3,4,5,0,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,0,1,2,
            3,4,0,6,7,8,9,10,11,12,
            13,14,15,16,17,18,19,20,21,22,
            23,24,0,0,1,78,3,0,90,7,
            8,0,5,55,88,89,0,6,0,0,
            0,2,6,0,6,0,1,2,3,4,
            78,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            0,1,2,3,4,0,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,0,1,2,3,4,
            73,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            0,1,2,3,4,0,0,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,0,1,2,3,4,
            75,0,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            0,1,2,3,4,0,0,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,0,1,2,3,4,
            74,0,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            0,1,2,3,4,74,0,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,0,1,2,3,4,
            74,0,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            0,1,2,3,4,74,0,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,0,1,2,0,4,
            5,0,0,2,6,0,0,2,0,0,
            0,10,11,5,0,6,0,0,2,0,
            25,4,71,0,5,0,0,0,1,2,
            0,4,0,25,28,5,0,0,43,44,
            45,46,47,48,49,50,51,52,53,54,
            55,0,0,2,0,25,55,43,44,45,
            46,47,48,0,0,2,0,4,73,43,
            44,45,46,47,48,43,44,45,46,47,
            48,80,55,0,0,0,0,0,5,5,
            5,5,73,0,0,94,79,0,5,76,
            77,71,5,9,0,0,55,55,25,25,
            0,25,27,76,77,0,91,2,55,55,
            0,55,0,0,0,71,6,0,92,6,
            6,0,80,6,0,0,0,6,0,0,
            0,6,6,0,80,6,0,0,0,0,
            0,0,0,0,0,71,73,0,73,0,
            0,0,0,0,0,72,79,0,0,72,
            0,0,0,0,0,71,71,0,0,0,
            0,71,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,74,0,0,0,
            0,0,0,0,0,0,0,0,0,75,
            0,0,74,0,74,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0
        };
    };
    public final static byte termCheck[] = TermCheck.termCheck;
    @Override
	public final int termCheck(int index) { return termCheck[index]; }

    public interface TermAction {
        public final static char termAction[] = {0,
            3262,6600,1,6598,1,1219,870,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,3271,3363,1028,1094,951,
            973,1160,457,1087,1030,1134,1972,1120,821,1868,
            727,1594,1080,1,1,1,1,1,1,1,
            1,1,1,1,1,183,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,254,3269,8,3247,3247,3247,3247,3247,3247,
            3247,3247,3247,3247,3247,3247,3247,3247,3247,3247,
            3247,3247,3247,3247,3247,3247,3247,3247,3247,3247,
            3247,3247,3247,3247,3247,3247,3247,3247,3247,3247,
            3247,3247,3247,3247,3247,3247,3247,3247,3247,3247,
            3247,3247,3247,3247,3247,3247,3247,3247,1,3247,
            3247,3247,3247,3247,3247,3247,3247,3247,3247,3247,
            3247,3247,3247,3247,184,3247,3262,6600,1,6598,
            1,1219,870,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,3271,3363,1028,1094,951,973,1160,457,1087,
            1030,1134,1972,1120,821,1868,727,1594,1080,1,
            1,1,1,1,1,1,1,1,1,1,
            1,287,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,3262,3269,3262,
            6600,1,6598,1,3272,870,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,3271,3363,1028,1094,951,973,
            1160,457,1087,1030,1134,1972,1120,821,1868,727,
            1594,1080,1,1,1,1,1,1,1,1,
            1,1,1,1,71,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            3262,6600,1,6598,1,3272,870,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,3271,3363,1028,1094,951,
            973,1160,457,1087,1030,1134,1972,1120,821,1868,
            727,1594,1080,1,1,1,1,1,1,1,
            1,1,1,1,1,131,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,3262,3273,2852,3274,1189,1908,3262,1123,1090,
            1156,1420,1387,1354,3275,3276,3277,3278,987,382,
            3578,3579,3580,1321,921,574,3262,3501,3477,3478,
            3479,3591,450,3592,3426,3427,3425,3480,3428,3424,
            1,3489,678,3262,3477,3478,3479,3591,450,3592,
            3426,3427,3425,3480,3428,3424,3262,3431,3436,3435,
            3433,3434,3432,3437,3438,3430,3439,3440,3441,371,
            681,427,3262,6600,1,6598,1,3272,870,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,3271,3363,1028,
            1094,951,973,1160,457,1087,1030,1134,1972,1120,
            821,1868,727,1594,1080,3262,6600,1,6598,1,
            3272,870,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            3271,3363,1028,1094,951,973,1160,457,1087,1030,
            1134,1972,1120,821,1868,727,1594,1080,3262,6600,
            1,6598,1,3272,870,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,3271,3363,1028,1094,951,973,1160,
            457,1087,1030,1134,1972,1120,821,1868,727,1594,
            1080,3262,6600,1,6598,1,3272,870,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,3271,3363,1028,1094,
            951,973,1160,457,1087,1030,1134,1972,1120,821,
            1868,727,1594,1080,3262,6600,1,6598,1,3272,
            870,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,3271,
            3363,1028,1094,951,973,1160,457,1087,1030,1134,
            1972,1120,821,1868,727,1594,1080,3262,6600,1,
            6598,1,3272,870,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,3271,3363,1028,1094,951,973,1160,457,
            1087,1030,1134,1972,1120,821,1868,727,1594,1080,
            3262,6600,1,6598,1,3272,870,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,3271,3363,1028,1094,951,
            973,1160,457,1087,1030,1134,1972,1120,821,1868,
            727,1594,1080,3262,6600,1,6598,1,3272,870,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,3271,3363,
            1028,1094,951,973,1160,457,1087,1030,1134,1972,
            1120,821,1868,727,1594,1080,3262,6600,1,6598,
            1,3272,870,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,3271,3363,1028,1094,951,973,1160,457,1087,
            1030,1134,1972,1120,821,1868,727,1594,1080,3262,
            6600,1,6598,1,3272,870,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,3271,3363,1028,1094,951,973,
            1160,457,1087,1030,1134,1972,1120,821,1868,727,
            1594,1080,3262,6600,1,6598,1,3272,870,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,3271,3363,1028,
            1094,951,973,1160,457,1087,1030,1134,1972,1120,
            821,1868,727,1594,1080,3262,6600,1,6598,1,
            3272,870,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            3271,3363,1028,1094,951,973,1160,457,1087,1030,
            1134,1972,1120,821,1868,727,1594,1080,3262,6600,
            1,6598,1,3272,870,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,3271,3363,1028,1094,951,973,1160,
            457,1087,1030,1134,1972,1120,821,1868,727,1594,
            1080,3262,6600,1,6598,1,3272,870,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,3271,3363,1028,1094,
            951,973,1160,457,1087,1030,1134,1972,1120,821,
            1868,727,1594,1080,3262,6600,1,6598,1,3272,
            870,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,3271,
            3363,1028,1094,951,973,1160,457,1087,1030,1134,
            1972,1120,821,1868,727,1594,1080,3262,6600,1,
            6598,1,3272,870,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,3271,3363,1028,1094,951,973,1160,457,
            1087,1030,1134,1972,1120,821,1868,727,1594,1080,
            3262,6600,1,6598,1,3272,870,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,3271,3363,1028,1094,951,
            973,1160,457,1087,1030,1134,1972,1120,821,1868,
            727,1594,1080,3262,6600,1,6598,1,3272,870,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,3271,3363,
            1028,1094,951,973,1160,457,1087,1030,1134,1972,
            1120,821,1868,727,1594,1080,3262,6600,1,6598,
            1,3272,870,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,3271,3363,1028,1094,951,973,1160,457,1087,
            1030,1134,1972,1120,821,1868,727,1594,1080,3262,
            6600,1,6598,1,3272,870,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,3271,3363,1028,1094,951,973,
            1160,457,1087,1030,1134,1972,1120,821,1868,727,
            1594,1080,3262,6600,1,6598,1,3272,870,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,3271,3363,1028,
            1094,951,973,1160,457,1087,1030,1134,1972,1120,
            821,1868,727,1594,1080,3262,6600,1,6598,1,
            3272,870,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            3271,3363,1028,1094,951,973,1160,457,1087,1030,
            1134,1972,1120,821,1868,727,1594,1080,3262,6600,
            1,6598,1,3272,870,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,3271,3363,1028,1094,951,973,1160,
            457,1087,1030,1134,1972,1120,821,1868,727,1594,
            1080,3262,6600,1,6598,1,3272,870,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,3271,3363,1028,1094,
            951,973,1160,457,1087,1030,1134,1972,1120,821,
            1868,727,1594,1080,3262,6600,1,6598,1,3272,
            870,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,3271,
            3363,1028,1094,951,973,1160,457,1087,1030,1134,
            1972,1120,821,1868,727,1594,1080,3262,6600,1,
            6598,1,3272,870,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,3271,3363,1028,1094,951,973,1160,457,
            1087,1030,1134,1972,1120,821,1868,727,1594,1080,
            3262,6600,1,6598,1,3272,870,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,3271,3363,1028,1094,951,
            973,1160,457,1087,1030,1134,1972,1120,821,1868,
            727,1594,1080,3262,6600,1,6598,1,3272,870,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,3271,3363,
            1028,1094,951,973,1160,457,1087,1030,1134,1972,
            1120,821,1868,727,1594,1080,3262,6600,1,6598,
            1,3272,870,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,3271,3363,1028,1094,951,973,1160,457,1087,
            1030,1134,1972,1120,821,1868,727,1594,1080,3262,
            6600,1,6598,1,3272,870,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,3271,3363,1028,1094,951,973,
            1160,457,1087,1030,1134,1972,1120,821,1868,727,
            1594,1080,3262,6600,1,6598,1,3272,870,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,3271,3363,1028,
            1094,951,973,1160,457,1087,1030,1134,1972,1120,
            821,1868,727,1594,1080,3262,6600,1,6598,1,
            3272,870,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            3271,3363,1028,1094,951,973,1160,457,1087,1030,
            1134,1972,1120,821,1868,727,1594,1080,3262,6600,
            1,6598,1,3272,870,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,3271,3363,1028,1094,951,973,1160,
            457,1087,1030,1134,1972,1120,821,1868,727,1594,
            1080,3262,6600,1,6598,1,3272,870,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,3271,3363,1028,1094,
            951,973,1160,457,1087,1030,1134,1972,1120,821,
            1868,727,1594,1080,3262,1,1,1,1,3272,
            3262,3273,55,3274,3262,3273,739,3274,3262,236,
            751,254,3489,678,224,1,3489,678,3262,3271,
            3569,3262,263,3489,1838,3262,1,561,3262,59,
            3262,1,3256,1838,224,3262,3268,1,1,1,
            1,1,1,1,1,1,1,1,1,132,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,3262,1,1,1,1,
            3272,3477,3478,3479,3591,450,3592,802,593,2752,
            224,301,237,1,224,2781,802,224,3268,1540,
            3271,3569,3477,3478,3479,3591,450,3592,3426,3427,
            3425,3480,3428,3424,3267,593,2752,224,1,1,
            1,1,1,1,1,1,1,1,1,1,
            133,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,3262,1,802,1,
            43,192,186,6595,11,6595,3238,60,185,6596,
            3262,6596,300,224,230,113,3267,224,207,6599,
            233,6599,3459,3477,3478,3479,3591,450,3592,3426,
            3427,3425,3480,3428,3424,134,3262,3262,407,1,
            1,1,1,1,1,1,1,1,1,1,
            1,3262,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,49,192,3262,
            1,1288,1,62,191,1340,69,61,3477,3478,
            3479,3591,450,3592,3426,3427,3425,3480,3428,3424,
            2738,2724,2710,2693,63,3459,158,1307,1274,1241,
            1208,1175,1109,1142,1076,1043,1010,250,3259,223,
            328,643,1,1,1,1,1,1,1,1,
            1,1,1,1,3234,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            3262,191,3262,1,428,1,3262,192,1255,1222,
            1,1,1,1,1,1,2738,2724,2710,2693,
            2738,2724,2710,2693,802,3235,51,607,3459,65,
            1288,640,1,393,678,3274,3262,3273,2557,3274,
            3262,3262,2630,2579,924,1,1,1,1,1,
            1,1,1,1,1,1,1,3262,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,3262,192,3477,3478,3479,3591,450,
            3592,3426,3427,3425,3480,3428,3424,67,3431,3436,
            3435,3433,3434,3432,3437,3438,3430,3439,3440,3441,
            371,681,427,3262,3273,3262,3274,1255,1222,1,
            3273,2852,3274,851,3266,73,1123,1090,1156,1420,
            1387,1354,3275,3276,3277,3278,987,382,3578,3579,
            3580,1321,921,574,50,3262,3262,1,1288,3262,
            3268,3266,3241,3262,3268,708,3477,3478,3479,3591,
            450,3592,3426,3427,3425,3480,3428,3424,872,3431,
            3436,3435,3433,3434,3432,3437,3438,3430,3439,3440,
            3441,371,681,427,266,249,2781,1953,1,1,
            3244,3262,3273,2852,3274,886,3266,3265,1123,1090,
            1156,1420,1387,1354,3275,3276,3277,3278,987,382,
            3578,3579,3580,1321,921,574,1643,1,3267,3269,
            1818,1836,3267,58,3265,1255,1222,130,3477,3478,
            3479,3591,450,3592,209,3273,3262,3274,2940,802,
            1406,1,3273,2852,3274,1189,29,6557,1123,1090,
            1156,1420,1387,1354,3275,3276,3277,3278,987,382,
            3578,3579,3580,1321,921,574,3262,3262,3521,3265,
            3477,3478,3479,3591,450,3592,3426,3427,3425,3480,
            3428,3424,3262,3431,3436,3435,3433,3434,3432,3437,
            3438,3430,3439,3440,3441,52,3521,54,68,593,
            2752,3262,2829,2818,2829,2818,64,3262,3273,2852,
            3274,621,3266,29,1123,1090,1156,1420,1387,1354,
            3275,3276,3277,3278,987,382,3578,3579,3580,1321,
            921,574,3262,3273,2852,3274,1189,3266,221,1123,
            1090,1156,1420,1387,1354,3275,3276,3277,3278,987,
            382,3578,3579,3580,1321,921,574,3262,3273,2852,
            3274,1189,3262,6557,1123,1090,1156,1420,1387,1354,
            3275,3276,3277,3278,987,382,3578,3579,3580,1321,
            921,574,53,208,941,3265,941,1,1953,2829,
            2818,3262,3268,802,2630,2579,1,1112,3262,3262,
            3262,3166,870,3262,1244,3262,3273,2852,3274,1189,
            3265,6557,1123,1090,1156,1420,1387,1354,3275,3276,
            3277,3278,987,382,3578,3579,3580,1321,921,574,
            1,3273,2852,3274,1189,212,6557,1123,1090,1156,
            1420,1387,1354,3275,3276,3277,3278,987,382,3578,
            3579,3580,1321,921,574,3262,3273,2852,3274,1189,
            3267,6557,1123,1090,1156,1420,1387,1354,3275,3276,
            3277,3278,987,382,3578,3579,3580,1321,921,574,
            3262,3273,2867,3274,1189,3262,3262,1123,1090,1156,
            1420,1387,1354,3275,3276,3277,3278,987,382,3578,
            3579,3580,1321,921,574,3262,3273,2872,3274,1189,
            1505,3262,1123,1090,1156,1420,1387,1354,3275,3276,
            3277,3278,987,382,3578,3579,3580,1321,921,574,
            3262,3273,2874,3274,1189,3262,3262,1123,1090,1156,
            1420,1387,1354,3275,3276,3277,3278,987,382,3578,
            3579,3580,1321,921,574,3262,3273,2890,3274,1189,
            682,3262,1123,1090,1156,1420,1387,1354,3275,3276,
            3277,3278,987,382,3578,3579,3580,1321,921,574,
            3262,3273,2852,3274,1189,1765,3262,1123,1090,1156,
            1420,1387,1354,3275,3276,3277,3278,987,382,3578,
            3579,3580,1321,921,574,3262,3273,2895,3274,1189,
            1989,257,1123,1090,1156,1420,1387,1354,3275,3276,
            3277,3278,987,382,3578,3579,3580,1321,921,574,
            1,3273,2852,3274,1189,1472,3262,1123,1090,1156,
            1420,1387,1354,3275,3276,3277,3278,987,382,3578,
            3579,3580,1321,921,574,20,180,3253,230,3253,
            3253,32,3262,637,234,3262,119,3172,1,3262,
            3262,3288,3289,3272,251,1463,3262,1,3181,1,
            3253,254,731,57,91,70,252,269,3489,1838,
            3262,254,253,3271,3250,3272,72,56,180,180,
            180,180,180,180,180,180,180,180,180,180,
            3253,271,3262,676,89,3271,1007,1,1,1,
            1,1,1,269,293,2781,272,254,3253,3477,
            3478,3479,3591,450,3592,3477,3478,3479,3591,450,
            3592,963,802,1,3262,1,3262,1,117,3272,
            3268,3272,91,3262,66,960,3521,286,3270,593,
            2752,448,908,2557,30,208,802,1575,117,3271,
            30,3271,3629,593,2752,3262,607,3183,802,1645,
            324,802,202,322,320,1439,6557,42,1908,6557,
            6557,3262,1061,6557,3262,190,190,6557,1,190,
            1,186,185,3262,1488,207,3262,3262,3262,3262,
            3262,3262,3262,3262,3262,2613,117,3262,3267,3262,
            3262,3262,3262,3262,3262,3269,3520,3262,3262,908,
            3262,3262,3262,3262,3262,3291,6183,3262,3262,3262,
            3262,558,3262,3262,3262,3262,3262,3262,3262,3262,
            3262,3262,3262,3262,3262,3262,1610,3262,3262,3262,
            3262,3262,3262,3262,3262,3262,3262,3262,3262,748,
            3262,3262,3274,3262,3273
        };
    };
    public final static char termAction[] = TermAction.termAction;
    @Override
	public final int termAction(int index) { return termAction[index]; }

    public interface Asb {
        public final static char asb[] = {0,
            523,5,58,398,523,60,355,30,7,42,
            353,42,353,353,42,353,42,400,600,60,
            46,557,355,400,181,186,185,518,107,600,
            517,359,301,353,104,104,353,104,60,600,
            481,600,605,400,60,268,605,198,60,360,
            323,380,84,84,84,84,84,84,84,84,
            301,84,84,84,141,158,163,161,169,165,
            172,171,174,173,175,355,222,355,255,600,
            470,60,607,326,400,58,271,323,423,147,
            301,607,252,355,84,107,517,359,182,82,
            82,82,82,182,182,104,557,557,557,64,
            557,557,182,359,192,84,192,380,481,481,
            564,380,380,380,380,380,104,104,639,84,
            84,84,84,84,84,84,84,84,84,84,
            84,84,84,84,84,84,84,84,84,355,
            222,255,255,470,470,481,476,480,60,423,
            323,300,268,84,84,84,84,84,84,84,
            84,84,84,84,480,252,196,357,182,84,
            182,182,182,182,378,378,84,358,84,84,
            360,64,192,64,178,430,198,600,602,479,
            478,481,481,481,481,481,481,323,161,161,
            158,158,165,165,163,163,163,163,171,169,
            173,172,192,174,222,252,261,222,255,257,
            559,257,470,423,602,600,607,84,84,323,
            301,62,196,82,82,182,82,182,481,557,
            481,481,359,64,84,564,481,570,605,484,
            484,484,484,355,84,222,263,257,252,84,
            104,423,470,570,476,323,323,257,2,82,
            182,82,182,82,182,82,64,84,64,64,
            481,607,252,181,84,180,252,470,252,194,
            521,104,84,1,638,182,82,638,182,82,
            82,182,639,182,481,358,481,263,84,141,
            198,323,104,84,64,481,638,638,182,64,
            481,638,638,182,638,182,82,481,639,182,
            64,323,64,64,481,64,481,638,64,64,
            481,64,481,638,64,481,638,638,182,64,
            481,64,64,64,481,64,64,64,481,64,
            64,481,64,481,638,64,64,64,64,64,
            64,481,64
        };
    };
    public final static char asb[] = Asb.asb;
    @Override
	public final int asb(int index) { return asb[index]; }

    public interface Asr {
        public final static byte asr[] = {0,
            75,55,80,0,87,0,68,12,69,70,
            13,14,15,16,3,10,11,9,7,8,
            17,18,78,19,20,21,22,23,24,64,
            56,61,59,60,58,57,62,63,65,66,
            67,55,74,71,73,50,43,51,52,53,
            44,49,54,45,46,47,48,25,5,4,
            2,1,0,30,31,6,35,37,32,28,
            33,42,34,27,29,36,39,41,38,40,
            26,25,5,2,13,14,15,16,19,20,
            21,10,11,9,4,7,8,17,18,12,
            22,23,24,1,3,0,50,56,43,57,
            68,51,58,52,59,60,53,44,61,62,
            49,69,54,70,63,64,45,65,66,67,
            1,3,46,47,48,5,75,71,25,0,
            55,2,80,94,10,11,75,97,98,99,
            100,101,103,102,104,105,106,4,81,82,
            7,8,77,76,83,84,85,86,88,89,
            9,90,91,92,72,95,96,78,73,74,
            71,25,5,0,2,5,75,71,73,25,
            55,74,0,5,72,55,80,2,13,14,
            15,16,19,20,21,1,3,10,11,9,
            4,7,8,17,18,12,22,23,24,6,
            0,50,56,43,57,68,51,58,52,59,
            60,53,44,61,62,49,69,54,70,63,
            64,45,65,66,67,1,3,46,47,48,
            26,5,72,0,1,3,5,72,71,0,
            25,5,4,1,2,74,0,78,5,49,
            43,44,45,46,47,48,10,11,9,4,
            7,8,17,18,12,22,23,24,2,1,
            3,13,14,15,16,19,20,21,0,49,
            10,11,9,4,7,8,17,18,12,22,
            23,24,2,1,3,13,14,15,16,19,
            20,21,78,5,0,50,56,43,57,68,
            51,58,52,59,60,53,44,61,62,49,
            69,54,70,63,64,45,65,66,67,46,
            47,48,1,3,6,0,87,93,72,30,
            31,6,35,37,32,28,33,42,34,27,
            29,36,39,41,38,40,26,25,5,12,
            13,14,15,16,10,11,9,7,8,17,
            18,19,20,21,22,23,24,4,2,1,
            3,68,69,70,64,56,61,59,60,58,
            57,62,63,65,66,67,54,51,49,50,
            53,52,43,44,45,47,46,48,0,49,
            54,53,52,51,50,80,94,10,11,9,
            7,8,81,82,76,77,83,84,85,86,
            88,89,90,91,92,95,96,75,97,98,
            99,100,101,102,103,104,105,106,25,43,
            44,45,46,47,48,4,1,2,55,71,
            73,5,0,9,4,7,8,81,82,76,
            77,83,84,85,86,88,89,90,91,92,
            95,96,74,97,98,99,100,101,102,103,
            104,105,106,78,73,72,6,5,71,25,
            75,0,87,50,56,43,57,68,51,58,
            52,59,60,53,44,61,62,49,69,54,
            70,63,64,45,65,66,67,1,3,4,
            46,47,48,25,5,26,2,0,5,71,
            72,75,0,5,73,4,2,55,0,50,
            56,43,57,68,51,58,52,59,60,53,
            44,61,62,49,69,54,70,63,64,45,
            65,66,67,1,3,46,47,48,79,4,
            0,4,2,55,73,5,50,56,43,57,
            68,51,58,52,59,60,53,44,61,62,
            49,69,54,70,63,64,45,65,66,67,
            1,3,46,47,48,79,0,27,5,73,
            12,13,14,15,16,1,3,2,10,11,
            9,4,7,8,17,18,19,20,21,22,
            23,24,0
        };
    };
    public final static byte asr[] = Asr.asr;
    @Override
	public final int asr(int index) { return asr[index]; }

    public interface Nasb {
        public final static char nasb[] = {0,
            105,34,64,24,88,145,20,124,37,125,
            22,125,16,16,125,15,125,119,142,147,
            34,34,20,138,65,44,44,34,34,142,
            34,55,83,7,7,7,7,7,46,34,
            158,142,157,115,147,82,157,61,127,109,
            84,164,53,53,53,53,53,53,53,53,
            83,53,53,53,34,34,34,34,34,34,
            34,34,34,34,34,86,138,34,138,34,
            13,129,79,94,27,64,52,84,103,34,
            83,160,138,34,53,34,34,75,65,71,
            71,71,71,65,65,7,34,34,34,39,
            34,34,65,55,34,53,34,1,158,158,
            136,164,164,164,164,164,92,92,58,72,
            53,53,53,53,53,53,53,53,53,53,
            53,53,53,53,53,53,53,72,53,34,
            168,138,7,13,138,158,134,34,147,103,
            84,83,99,53,53,53,53,53,53,53,
            53,53,53,53,158,56,138,34,65,53,
            65,65,65,65,69,172,72,34,72,72,
            109,39,34,39,34,34,151,142,155,44,
            44,158,158,158,158,158,158,84,34,34,
            34,34,34,34,34,34,34,34,34,34,
            34,34,34,34,138,56,64,181,7,101,
            34,34,138,103,133,142,79,53,53,84,
            83,34,51,71,71,65,174,65,158,34,
            158,158,75,39,53,11,158,140,157,152,
            152,152,152,152,53,168,147,101,56,53,
            7,103,99,140,9,84,84,101,35,71,
            65,71,65,71,65,174,39,72,39,39,
            158,79,56,65,53,34,56,99,56,50,
            34,7,53,18,177,65,71,177,65,71,
            71,65,174,65,158,34,158,147,53,67,
            61,84,7,53,39,158,177,177,65,39,
            158,177,177,65,177,65,71,158,174,65,
            39,84,39,39,158,39,158,177,39,39,
            158,39,158,177,39,158,177,177,65,39,
            158,39,39,39,158,39,39,39,158,39,
            39,158,39,158,177,39,39,39,39,39,
            39,158,39
        };
    };
    public final static char nasb[] = Nasb.nasb;
    @Override
	public final int nasb(int index) { return nasb[index]; }

    public interface Nasr {
        public final static char nasr[] = {0,
            88,86,85,79,84,83,2,0,41,46,
            66,65,40,0,116,91,0,125,0,110,
            0,113,0,41,1,104,88,87,86,85,
            79,84,83,0,123,0,128,0,2,18,
            1,19,0,52,0,41,43,40,0,106,
            53,1,8,0,1,49,0,1,112,0,
            8,53,0,1,3,0,121,0,33,51,
            3,1,14,0,18,2,73,49,1,33,
            0,1,8,39,0,114,0,1,33,107,
            0,94,0,1,33,51,16,0,35,0,
            82,0,80,0,126,1,33,0,1,33,
            2,18,96,0,33,1,127,0,79,74,
            75,76,77,69,54,0,43,48,41,46,
            40,0,11,41,46,65,66,1,0,1,
            33,40,61,0,43,48,46,41,1,0,
            8,53,50,0,65,66,1,11,0,117,
            1,33,0,1,58,14,0,99,1,58,
            0,33,51,1,68,0,1,44,11,0,
            1,58,92,0
        };
    };
    public final static char nasr[] = Nasr.nasr;
    @Override
	public final int nasr(int index) { return nasr[index]; }

    public interface TerminalIndex {
        public final static char terminalIndex[] = {0,
            85,2,86,9,87,3,10,11,8,6,
            7,68,81,82,83,84,12,13,93,94,
            95,100,101,102,92,107,49,77,45,46,
            50,51,57,58,59,65,71,99,103,104,
            105,106,48,64,76,96,97,98,69,44,
            55,60,63,72,1,47,52,56,61,62,
            66,67,74,75,78,79,80,54,70,73,
            42,91,90,29,31,16,17,89,30,4,
            14,15,18,19,20,21,108,22,23,24,
            25,26,53,5,27,28,32,33,34,35,
            36,37,38,39,40,41,88
        };
    };
    public final static char terminalIndex[] = TerminalIndex.terminalIndex;
    @Override
	public final int terminalIndex(int index) { return terminalIndex[index]; }

    public interface NonterminalIndex {
        public final static char nonterminalIndex[] = {0,
            0,113,112,0,0,0,0,115,119,120,
            110,121,122,114,123,136,124,132,135,0,
            0,0,0,0,0,125,126,127,128,129,
            130,0,140,131,148,0,0,0,109,0,
            170,0,173,197,167,169,0,171,111,118,
            139,172,0,147,0,0,0,162,158,134,
            168,117,181,184,185,186,0,0,150,0,
            174,180,138,151,152,153,154,157,159,179,
            183,0,142,143,144,145,146,149,155,156,
            0,161,166,116,133,137,141,0,160,164,
            0,0,165,175,178,188,193,0,0,195,
            0,0,0,0,163,0,176,177,182,187,
            0,189,190,0,191,192,194,196,0,0
        };
    };
    public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
    @Override
	public final int nonterminalIndex(int index) { return nonterminalIndex[index]; }

    public interface ScopePrefix {
        public final static char scopePrefix[] = {
            120,151,130,59,69,159,26,186,35,87,
            105,75,6,12,16,40,83,52,141,195,
            212,219,223,52,52,199,52,1,1,1,
            44,47,92,115,47,227,20,145,206,206,
            177,137,165,165,165,165,165,95,95,95
        };
    };
    public final static char scopePrefix[] = ScopePrefix.scopePrefix;
    @Override
	public final int scopePrefix(int index) { return scopePrefix[index]; }

    public interface ScopeSuffix {
        public final static char scopeSuffix[] = {
            128,128,128,4,4,128,32,192,10,4,
            10,80,10,10,10,10,4,4,139,128,
            10,10,4,56,80,203,65,4,4,4,
            10,50,4,10,118,10,23,148,209,216,
            180,139,167,169,171,173,175,102,97,110
        };
    };
    public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
    @Override
	public final int scopeSuffix(int index) { return scopeSuffix[index]; }

    public interface ScopeLhs {
        public final static char scopeLhs[] = {
            76,74,76,52,52,74,50,22,67,52,
            43,52,9,9,9,67,52,52,92,16,
            9,8,8,52,52,32,52,128,125,124,
            65,81,52,41,59,6,106,92,10,8,
            23,92,87,86,85,84,83,43,48,43
        };
    };
    public final static char scopeLhs[] = ScopeLhs.scopeLhs;
    @Override
	public final int scopeLhs(int index) { return scopeLhs[index]; }

    public interface ScopeLa {
        public final static byte scopeLa[] = {
            72,72,72,78,78,72,72,93,73,78,
            73,13,73,73,73,73,78,78,25,72,
            73,73,78,4,13,74,49,78,78,78,
            73,2,78,73,1,73,75,1,73,73,
            28,25,1,68,69,69,64,2,2,2
        };
    };
    public final static byte scopeLa[] = ScopeLa.scopeLa;
    @Override
	public final int scopeLa(int index) { return scopeLa[index]; }

    public interface ScopeStateSet {
        public final static char scopeStateSet[] = {
            153,153,153,126,126,153,49,10,130,126,
            139,126,60,60,60,130,126,126,5,9,
            60,60,60,126,126,94,126,137,1,3,
            130,132,126,139,144,60,123,5,66,60,
            10,5,154,154,154,154,154,139,141,139
        };
    };
    public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet;
    @Override
	public final int scopeStateSet(int index) { return scopeStateSet[index]; }

    public interface ScopeRhs {
        public final static char scopeRhs[] = {0,
            167,55,0,109,0,169,2,24,0,110,
            0,169,2,23,0,169,2,22,0,229,
            108,0,31,157,0,189,227,108,6,160,
            0,111,0,0,178,108,2,172,0,178,
            108,2,0,188,2,0,168,108,0,184,
            0,212,108,55,0,9,109,0,141,49,
            212,108,55,0,69,131,109,0,141,212,
            108,49,55,0,212,108,49,55,0,131,
            109,0,141,49,55,0,141,212,108,55,
            0,141,55,0,148,0,2,0,176,110,
            0,2,110,0,178,108,2,148,0,2,
            0,174,110,0,166,2,0,167,0,189,
            209,108,6,109,223,68,0,111,0,189,
            209,108,6,223,68,0,165,0,112,0,
            222,108,165,0,108,165,0,163,112,0,
            205,108,6,221,109,220,186,0,205,108,
            6,220,186,0,195,0,154,0,153,0,
            152,0,151,0,150,0,126,32,0,77,
            2,114,110,112,0,126,118,121,2,35,
            0,53,135,0,203,108,6,0,121,96,
            138,0,29,131,0,169,2,0,110,120,
            0,169,2,12,0,110,118,0,219,2,
            115,0,121,55,115,0,121,2,0
        };
    };
    public final static char scopeRhs[] = ScopeRhs.scopeRhs;
    @Override
	public final int scopeRhs(int index) { return scopeRhs[index]; }

    public interface ScopeState {
        public final static char scopeState[] = {0,
            372,0,432,0,2902,2984,2879,0,1013,2531,
            2521,2495,2485,2459,2449,2423,2413,2387,2377,2351,
            2341,2315,2305,2279,2269,2243,2233,2207,2197,2171,
            2161,2135,2125,2099,2089,2063,2053,2027,2017,1989,
            1731,1765,682,1697,457,767,1663,0,748,558,
            1843,1543,1509,1508,1491,519,2766,640,0,1420,
            1387,1354,1321,921,574,886,2766,1818,607,1908,
            2557,1953,2738,2724,2710,2693,2630,2579,2829,2818,
            2752,593,1288,1255,1222,1189,851,1156,621,1123,
            1090,987,382,1645,748,1610,1575,1540,1505,1472,
            1439,1406,1373,940,1340,1307,1274,1241,1208,1175,
            1142,1109,1076,1043,1010,905,368,973,872,640,
            802,837,558,519,0,1127,1101,552,492,369,
            2898,1838,2781,1811,1628,0,450,0,500,429,
            369,2767,1760,2613,2575,1838,2560,1811,448,678,
            1898,0,1740,368,659,429,0
        };
    };
    public final static char scopeState[] = ScopeState.scopeState;
    @Override
	public final int scopeState(int index) { return scopeState[index]; }

    public interface InSymb {
        public final static char inSymb[] = {0,
            0,218,140,108,233,108,211,190,47,191,
            186,192,70,69,193,68,194,195,108,2,
            1,148,211,225,204,153,148,197,155,108,
            150,6,55,220,198,198,223,198,168,147,
            166,108,2,108,71,55,2,75,168,108,
            167,2,24,23,22,12,18,17,8,7,
            4,9,11,10,115,119,122,120,133,124,
            135,134,137,136,138,109,6,109,6,147,
            4,168,108,234,108,140,49,141,108,116,
            4,108,6,160,4,155,150,203,40,38,
            41,39,36,29,27,34,42,33,28,32,
            37,35,125,6,31,30,109,108,169,121,
            165,2,2,2,2,2,94,80,2,55,
            82,81,4,76,77,8,7,89,88,86,
            85,84,83,90,9,92,91,96,95,221,
            108,6,108,4,147,178,140,179,108,108,
            141,212,187,106,105,104,102,103,101,100,
            99,98,97,75,224,108,6,5,121,108,
            121,121,121,109,2,2,2,126,2,2,
            108,74,167,74,202,109,118,108,2,173,
            172,169,169,169,169,169,219,121,120,120,
            119,119,124,124,122,122,122,122,134,133,
            136,135,121,137,6,205,165,206,108,209,
            109,210,147,108,2,108,71,212,49,141,
            4,71,108,158,110,121,158,175,121,28,
            121,121,203,74,71,168,188,108,2,118,
            118,118,118,118,74,108,108,209,189,75,
            71,108,187,108,168,141,141,227,108,110,
            121,110,121,110,175,110,118,2,118,118,
            178,108,205,222,74,166,189,187,189,71,
            229,80,55,230,110,121,110,110,121,110,
            110,121,110,175,121,126,178,71,74,156,
            75,167,80,55,118,151,110,110,121,118,
            151,110,110,121,110,121,110,175,110,118,
            93,167,118,118,151,118,151,110,118,118,
            151,118,151,110,118,151,110,110,121,118,
            175,118,118,118,151,118,118,118,151,118,
            118,151,118,151,110,118,118,118,118,118,
            118,151,118
        };
    };
    public final static char inSymb[] = InSymb.inSymb;
    @Override
	public final int inSymb(int index) { return inSymb[index]; }

    public interface Name {
        public final static String name[] = {
            "",
            "[",
            "(",
            "{",
            ".",
            "->",
            "++",
            "--",
            "&",
            "*",
            "+",
            "-",
            "~",
            "!",
            "/",
            "%",
            ">>",
            "<<",
            "<",
            ">",
            "<=",
            ">=",
            "==",
            "!=",
            "^",
            "|",
            "&&",
            "||",
            "?",
            ":",
            "...",
            "=",
            "*=",
            "/=",
            "%=",
            "+=",
            "-=",
            ">>=",
            "<<=",
            "&=",
            "^=",
            "|=",
            ",",
            "$empty",
            "auto",
            "break",
            "case",
            "char",
            "const",
            "continue",
            "default",
            "do",
            "double",
            "else",
            "enum",
            "extern",
            "float",
            "for",
            "goto",
            "if",
            "inline",
            "int",
            "long",
            "register",
            "restrict",
            "return",
            "short",
            "signed",
            "sizeof",
            "static",
            "struct",
            "switch",
            "typedef",
            "union",
            "unsigned",
            "void",
            "volatile",
            "while",
            "_Bool",
            "_Complex",
            "_Imaginary",
            "integer",
            "floating",
            "charconst",
            "stringlit",
            "identifier",
            "Completion",
            "EndOfCompletion",
            "Invalid",
            "RightBracket",
            "RightParen",
            "RightBrace",
            "SemiColon",
            "MYTHREAD",
            "THREADS",
            "UPC_MAX_BLOCKSIZE",
            "relaxed",
            "shared",
            "strict",
            "upc_barrier",
            "upc_localsizeof",
            "upc_blocksizeof",
            "upc_elemsizeof",
            "upc_notify",
            "upc_fence",
            "upc_wait",
            "upc_forall",
            "ERROR_TOKEN",
            "EOF_TOKEN",
            "]",
            ")",
            "}",
            ";",
            "identifier_token",
            "expression",
            "postfix_expression",
            "member_name",
            "type_id",
            "initializer_list",
            "unary_expression",
            "cast_expression",
            "multiplicative_expression",
            "additive_expression",
            "shift_expression",
            "relational_expression",
            "equality_expression",
            "and_expression",
            "exclusive_or_expression",
            "inclusive_or_expression",
            "logical_and_expression",
            "logical_or_expression",
            "assignment_expression",
            "expression_in_statement",
            "expression_list_actual",
            "constant_expression",
            "statement",
            "compound_statement",
            "block_item_list",
            "block_item",
            "declaration",
            "declaration_specifiers",
            "init_declarator_list",
            "simple_declaration_specifiers",
            "struct_or_union_declaration_sp" +
            "ecifiers",
            "elaborated_declaration_specifi" +
            "ers",
            "enum_declaration_specifiers",
            "typdef_name_declaration_specif" +
            "iers",
            "no_type_declaration_specifier",
            "type_qualifier",
            "no_type_declaration_specifiers",
            "simple_type_specifier",
            "struct_or_union_specifier",
            "elaborated_specifier",
            "enum_specifier",
            "type_name_specifier",
            "init_declarator",
            "complete_declarator",
            "initializer",
            "declarator",
            "struct_or_union",
            "struct_declaration_list",
            "struct_declaration",
            "specifier_qualifier_list",
            "struct_declarator_list",
            "complete_struct_declarator",
            "enumerator_list",
            "enumerator",
            "direct_declarator",
            "pointer_seq",
            "array_direct_declarator",
            "basic_direct_declarator",
            "knr_direct_declarator",
            "array_modifier",
            "function_direct_declarator",
            "parameter_type_list",
            "function_declarator",
            "identifier_list",
            "knr_function_declarator",
            "array_modifier_type_qualifiers",
            "type_qualifier_list",
            "parameter_list",
            "parameter_declaration",
            "complete_parameter_declarator",
            "abstract_declarator",
            "direct_abstract_declarator",
            "basic_direct_abstract_declarat" +
            "or",
            "array_direct_abstract_declarat" +
            "or",
            "initializer_seq",
            "designated_initializer",
            "designation",
            "designator_list",
            "designator",
            "external_declaration_list",
            "external_declaration",
            "declaration_list",
            "function_body",
            "layout_qualifier",
            "affinity"
        };
    };
    public final static String name[] = Name.name;
    @Override
	public final String name(int index) { return name[index]; }

    public final static int
           ERROR_SYMBOL      = 26,
           SCOPE_UBOUND      = 49,
           SCOPE_SIZE        = 50,
           MAX_NAME_LENGTH   = 38;

    @Override
	public final int getErrorSymbol() { return ERROR_SYMBOL; }
    @Override
	public final int getScopeUbound() { return SCOPE_UBOUND; }
    @Override
	public final int getScopeSize() { return SCOPE_SIZE; }
    @Override
	public final int getMaxNameLength() { return MAX_NAME_LENGTH; }

    public final static int
           NUM_STATES        = 383,
           NT_OFFSET         = 107,
           LA_STATE_OFFSET   = 3629,
           MAX_LA            = 2147483647,
           NUM_RULES         = 367,
           NUM_NONTERMINALS  = 130,
           NUM_SYMBOLS       = 237,
           SEGMENT_SIZE      = 8192,
           START_STATE       = 1523,
           IDENTIFIER_SYMBOL = 0,
           EOFT_SYMBOL       = 87,
           EOLT_SYMBOL       = 87,
           ACCEPT_ACTION     = 3234,
           ERROR_ACTION      = 3262;

    public final static boolean BACKTRACK = true;

    @Override
	public final int getNumStates() { return NUM_STATES; }
    @Override
	public final int getNtOffset() { return NT_OFFSET; }
    @Override
	public final int getLaStateOffset() { return LA_STATE_OFFSET; }
    @Override
	public final int getMaxLa() { return MAX_LA; }
    @Override
	public final int getNumRules() { return NUM_RULES; }
    @Override
	public final int getNumNonterminals() { return NUM_NONTERMINALS; }
    @Override
	public final int getNumSymbols() { return NUM_SYMBOLS; }
    @Override
	public final int getSegmentSize() { return SEGMENT_SIZE; }
    @Override
	public final int getStartState() { return START_STATE; }
    @Override
	public final int getStartSymbol() { return lhs[0]; }
    public final int getIdentifierSymbol() { return IDENTIFIER_SYMBOL; }
    @Override
	public final int getEoftSymbol() { return EOFT_SYMBOL; }
    @Override
	public final int getEoltSymbol() { return EOLT_SYMBOL; }
    @Override
	public final int getAcceptAction() { return ACCEPT_ACTION; }
    @Override
	public final int getErrorAction() { return ERROR_ACTION; }
    @Override
	public final boolean isValidForParser() { return isValidForParser; }
    @Override
	public final boolean getBacktrack() { return BACKTRACK; }

    @Override
	public final int originalState(int state) {
        return -baseCheck[state];
    }
    @Override
	public final int asi(int state) {
        return asb[originalState(state)];
    }
    @Override
	public final int nasi(int state) {
        return nasb[originalState(state)];
    }
    @Override
	public final int inSymbol(int state) {
        return inSymb[originalState(state)];
    }

    @Override
	public final int ntAction(int state, int sym) {
        return baseAction[state + sym];
    }

    @Override
	public final int tAction(int state, int sym) {
        int i = baseAction[state],
            k = i + sym;
        return termAction[termCheck[k] == sym ? k : i];
    }
    @Override
	public final int lookAhead(int la_state, int sym) {
        int k = la_state + sym;
        return termAction[termCheck[k] == sym ? k : la_state];
    }
}
